#include "mylabel.h"
#include <QMouseEvent>
#include <QDebug>

// 构造函数
myLabel::myLabel(QWidget *parent) : QLabel(parent)
{
}

// 重写鼠标按下事件处理器
void myLabel::mousePressEvent(QMouseEvent *event)
{
    // 创建一个字符串来存储坐标信息
    QString str = QString("鼠标按下: x = %1, y = %2").arg(event->x()).arg(event->y());
    // 使用 qDebug 输出调试信息
    qDebug() << str;

    // 调用父类的 mousePressEvent 来保证正常的事件处理流程
    QLabel::mousePressEvent(event);
}

// 重写事件处理器
bool myLabel::event(QEvent *e)
{
    // 检查事件类型是否为鼠标按下事件
    if (e->type() == QEvent::MouseButtonPress)
    {
        // 静态转换事件指针到 QMouseEvent
        QMouseEvent *event = static_cast<QMouseEvent *>(e);
        // 创建一个字符串来存储坐标信息
        QString str = QString("Event函数中鼠标按下: x = %1, y = %2").arg(event->x()).arg(event->y());
        // 使用 qDebug 输出调试信息
        qDebug() << str;

        // 返回 true 表示事件已经被处理
        return true;
    }

    // 对于其他类型的事件，调用父类的事件处理器
    return QLabel::event(e);
}
